Serilog:如何记录,将不同 "origins" 的消息记录到不同的文件

Serilog: How to log, log message with different "origins" to different files

我想在我的 ASP.NET 核心 Web 应用程序中使用 Serilog 记录信息 - Fatal,使用 .NET Core 3.0

我想将这些数据记录在不同的文件中(这已经被询问和回答,但我认为我的情况有点不同):

我只是不知道如何区分来自 Microsoft 的信息日志和我自己的信息日志。

我找到了一个关于如何禁用来自 Serilog/Microsoft 的日志记录的问题/答案,但这样做会为所有 LogWriters 停用它,如何关闭 ASP.NET 完成的日志记录核心框架 .

然后我找到了另一个问题的答案,这可能正是我要找的,但我不明白会发生什么,所以我宁愿不使用它,因为我不喜欢魔法,因为如果有是个问题,修起来比较费时间,.

我还发现了另一个类似的问题: 不过这个我也看不懂

因此,如果其中之一真的是我的问题的解决方案,如果有人能向我解释一下,我将不胜感激。

这是我到目前为止的记录器配置,它所做的就是将所有信息记录在一个文件中,将所有错误记录在另一个文件中。

            using Serilog;
            using Serilog.Events;            

            ...

            Log.Logger = new LoggerConfiguration()
                .MinimumLevel.Information()
                .WriteTo.Console()
                .WriteTo.Logger(l => l
                    .Filter.ByIncludingOnly(e => e
                    .Level == LogEventLevel.Information)
                    .WriteTo.File(@"Logs\Info.log"))
                .WriteTo.Logger(l => l
                    .Filter.ByIncludingOnly(e => e
                    .Level == LogEventLevel.Error)
                    .WriteTo.File(@"Logs\Error.log"))
                .CreateLogger();

正如我所说,将所有信息记录在一个文件中,将所有错误记录在另一个文件中,这种方法工作得很好,但我不知道如何继续。

编辑:我从这个问题的答案中找到了目前的配置:‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌ ‌‌

我相信您只需要根据 属性 SourceContext 过滤您的日志,这里有解释: